home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-15 | 1.3 KB | 86 lines | [TEXT/MPS ] |
- CalcMBCRCStack record 0
- Return ds.l 1
- dummy ds.b 1
- v ds.b 1
- crcp ds.l 1
- crctabl ds.l 1
- endr
-
- ; procedure CalcMBCRCTabl(crctabl:Handle; var crc:integer; v:integer);
- CalcMBCRCTabl proc export
- with CalcMBCRCStack
-
- move.l crcp(sp),a0
- move.w #0,d0
- move.b (a0),d0 ; crc high byte
- move.b v(sp),d1
- eor.b d1,d0
- add.w d0,d0
- move.l crctabl(sp),a1
- move.l (a1),a1
- move.w (a1,d0.w),d0
- move.b 1(a0),d1 ; crc low byte
- lsl.w #8,d1
- eor.w d1,d0
- move.w d0,(a0)
-
- move.l (sp),10(sp)
- add.l #10,sp
- rts
-
- endp
-
- CalcMBCRCBlockStack record 0
- a2 ds.l 1
- Return ds.l 1
- crcp ds.l 1
- len ds.l 1
- p ds.l 1
- crctabl ds.l 1
- endr
-
- ; procedure CalcMBCRCBlockTabl(crctabl:Handle; p:ptr; len:longInt; var crc:integer);
- CalcMBCRCBlockTabl proc export
- with CalcMBCRCBlockStack
-
- move.l a2,-(sp)
- move.l len(sp),d2
- move.l crcp(sp),a0
- move.l crctabl(sp),a1
- move.l (a1),a1
- move.l p(sp),a2
- lop
- subq.l #1,d2
- bmi.s fin
-
- clr.w d0
- move.b (a0),d0 ; crc high byte
- move.b (a2)+,d1
- eor.b d1,d0
- add.w d0,d0
- move.w (a1,d0.w),d0
- move.b 1(a0),d1 ; crc low byte
- lsl.w #8,d1
- eor.w d1,d0
- move.w d0,(a0)
- bra lop
-
- fin
- move.l (sp)+,a2
- move.l (sp),16(sp)
- add.l #16,sp
- rts
-
- endp
-
- END
-
- asm -wb "{active}"
-
-
-
- (evaluate "{active}" =~ /(?*):(?*)®1.a/ )> dev:null
- (evaluate "{active}" =~ "/(?*)®2.a/" )> dev:null
- link -sn CalcCRC="{®1}" "{active}.o" -o "{®2}"
- dumpcode "{®2}"
-